This invention relates in general to computer graphics systems, and more particularly to a system and method for controlling the operation of a graphical object using a project.
Computer graphics applications include different types of graphical objects, such as documents, graphical diagrams, graphical shapes, and graphical connectors. The graphical objects of an application may be arranged in a number of hierarchical levels according to the types of the graphical objects. For example, a document of the application may include one or more graphical diagrams. A graphical diagram of a document may include one or more graphical shapes or graphical connectors.
A user of the graphics application or the computer upon which the application operates may initiate events upon a graphical object to perform associated functions. Prior attempts to process events for a graphical object require needlessly complex, duplicative, and unmanageable software and/or hardware. As a result, opportunities to define the functions executed in response to the events are limited.
In accordance with the present invention a system for controlling the operation of a graphical object using a project is provided which substantially eliminates or reduces disadvantages and problems associated with previous computer graphics systems.
In accordance with one embodiment of the present invention, a system for controlling the operation of a graphical object includes a memory that stores a number of graphical objects, an event manager coupled to the memory, and a project coupled to the event manager. The event manager detects the initiation of an event upon one of a number of graphical objects and further detects the termination of the event. The project associates with the particular graphical object in response to the detected event initiation and executes instructions associated with the event. The project dissociates from the graphical object in response to the detected event termination.
Another embodiment of the present invention is a method for controlling the operation of a graphical object. The method includes presenting a number of options to be selected by a user to define a class of graphical objects and presenting an event menu operated by the user to select an event associated with the class of graphical objects. The method continues by presenting an editor operated by the user to write instructions. The method further includes detecting the initiation of the selected event upon a particular one of the class of graphical objects. The method concludes by executing a portion of the instructions in response to the selected event initiation.
Yet another embodiment of the present invention is a project for controlling the operation of a graphical object that includes an interface module and a plurality of instructions. The interface module associates with a particular one of a number of graphical objects in response to the initiation of an event upon the graphical object and dissociates from the particular graphical object in response to the termination of the event. The instructions execute in response to the event.
Technical advantages of the present invention include a system for processing an event of a graphical object. The system includes an event manager and an interface module. The event manager detects the initiation of an event upon a graphical object. The interface module associates with the graphical object in response to the detected event initiation and communicates event information defining the event to a client. The interface module further dissociates from the graphical object in response to the termination of the event so that the interface module is free to communicate event information for another event initiated upon the same or different graphical object. In this respect, the system of the present invention supports dynamically associating and dissociating an interface module with the same or different graphical objects to communicate event information to a client.
A graphical object upon which an event may be initiated may comprise one of many different types of graphical objects, including documents, graphical diagrams, graphical shapes, or graphical connectors of a computer graphics application. Interface modules may be characterized by a particular type to process events for graphical objects of a corresponding type. Therefore, an interface module may process document events, graphical diagram events, graphical shape events, or graphical connector events.
Graphical objects of a particular type may be organized in a number of classes to define varying scopes of the graphical objects. For example, a first class of graphical shapes may include all of the graphical shapes of a computer graphics application. A second class of graphical shapes may include all of the graphical shapes of a particular document of the computer graphics application. A third class of graphical shapes may include all of the graphical shapes of a particular graphical diagram of the computer graphics application. An interface module of a particular type may dynamically associate with or dissociate from any of the graphical objects of a class of a corresponding type, and process events for those graphical objects. Therefore, a particular interface module that processes graphical shape events may associate with or dissociate from any of the graphical shapes of a particular class, and process the events initiated upon those graphical shapes. In this respect, the system of the present invention generates a number of different types of interface modules to process events for any scope of graphical objects of a corresponding type.
Further advantages of the present invention include an interface module that may process nested events initiated upon graphical objects of a particular class during the execution of a primary event upon another graphical object of the class. In particular, an interface module may associate with a first graphical object within a class in response to a primary event initiated upon that object. In response to a nested event initiated upon another graphical object of the same class prior to the termination of the primary event, the interface module may dynamically dissociate from the first graphical object, associate with the second graphical object to communicate event information defining the nested event, and reassociate with the first graphical object to continue communicating event information defining the primary event.
In this respect, an interface module may process any number and combination of nested events initiated during the execution of a primary event. A particular advantage provided by this aspect of the present invention is that by processing nested events, an interface module of the present invention facilitates the execution of enhanced instructions, processes, or functions by the clients of the interface module. In one embodiment, a set of instructions that executes in response to a primary event may itself initiate one or more nested events during the course of execution in order to perform complex tasks. For example, a client of an interface module may execute a set of instructions that initiate one or more nested events to identify a database, to retrieve data from the database, and to insert the data in a file. The accurate and complete performance of these tasks may depend upon the processing of the nested events prior to the completion of the primary event. Therefore, by processing nested events, the interface modules of the present invention facilitate the execution of complex tasks.
A particular advantage provided by the dynamic association and dissociation of interface modules with graphical objects is the ability of a user of the system to customize the behavior of entire classes of graphical objects. For example, a user may generate projects which comprise an interface module and a set of instructions, forms, and modules designed to customize the behavior of a class of graphical objects. The system provides a graphical user interface (GUI) operated by the user to define the type and scope of graphical objects to be controlled by a project. The system further provides a GUI operated by the user to create, delete, or modify the collection of instructions, forms, and modules that execute in response to the initiation of selected events upon any of the defined class of graphical objects. In this respect, a user of the system may create projects to customize the behavior of a particular type and scope of graphical objects.
Further advantages provided by system 10 include projects that perform data processing functions for a defined class of graphical objects. In particular, a project may present a form operated by a user to generate a data request that defines the data processing functions to be performed by the project. In one embodiment, a user may generate a data request to retrieve, store, or update data items of a data client identified by the user. The project performs the defined data processing functions in response to the initiation of one or more selected events upon any of a class of graphical objects defined for the project.
The project may further include instructions that perform enhanced functions in response to the execution of the data processing functions. For example, the instructions may execute to customize the characteristics or properties of the class of graphical objects in response to data items retrieved from a data client. In another example, the instructions may execute to graphically represent to a user the contents of a data client. In this respect, a user of system 10 may interactively define data processing functions to be performed by a project for a class of graphical objects 30. The user may further define enhanced functions that execute in response to the execution of the data processing functions.
Another advantage provided by system 10 is a project that presents adjustment controls that adjust any graphical characteristic of a graphical object in any manner defined by a user. The graphical characteristics of a graphical object that may be adjusted by a user of the present invention includes graphical characteristics beyond those that may be adjusted using standard control points.
Other technical advantages are readily apparent to one of skill in the art from the attached figures, description, and claims.